Skip to content

test: run JMX Exporter quick test configuration#2178

Open
zeitlinger wants to merge 4 commits into
mainfrom
jmx-quick-test
Open

test: run JMX Exporter quick test configuration#2178
zeitlinger wants to merge 4 commits into
mainfrom
jmx-quick-test

Conversation

@zeitlinger
Copy link
Copy Markdown
Member

@zeitlinger zeitlinger commented Jun 2, 2026

Follow-up to #2167 (review comment): switches the JMX Exporter compatibility job to the quick test configuration and fixes the gaps that surfaced.

Changes

  • Quick test config (jmx_exporter_compat.py): build the full reactor (clean install) so integration_test_suite actually runs, pinned to a single Java + Prometheus distribution. The pins are read from the checked-out jmx_exporter's run-quick-test.sh so they stay aligned with upstream; -Dparamixel.parallelism set to CPU count.
  • Test main, not the release: the integration suite only compiles against current client_java when jmx_exporter imports the stable expositionformats.generated.Metrics class (Add stable Metrics class to decouple consumers from protobuf version #1873). Release 1.5.0 imports the version-stamped com_google_protobuf_4_32_0 package directly, which breaks on protobuf bumps (now 4.35.0); main uses the stable class. Tracked by Pin JMX Exporter compatibility test to a release once one ships the stable Metrics class #2179 — switch the ref back to a pinned release once one ships the fix.
  • Renovate guard (renovate.json5): block major JDK bumps for the jmx-exporter and micrometer compat env files (they pin an LTS JDK the upstream release supports). This supersedes chore(deps): update dependency java to v25 #2173-style bumps.

Local validation: mise run lint:fix; image-pin regex verified against prometheus/jmx_exporter@main. Full integration run is validated by CI (needs Docker + JDK 21).

The compatibility job previously ran only the unit tests of three modules
(common, javaagent, standalone) and never built the integration_test_suite,
so the docker-based integration tests never ran.

Switch to jmx_exporter's quick test configuration: build the full reactor
(including integration_test_suite) against a single Java and Prometheus
distribution. The distributions are read from the checked-out jmx_exporter's
run-quick-test.sh so they stay aligned with upstream instead of drifting from
a hardcoded copy.
Signed-off-by: Gregor Zeitlinger <gregor.zeitlinger@grafana.com>
The integration_test_suite only compiles against current client_java when
jmx_exporter imports the stable expositionformats.generated.Metrics class.
Release 1.5.0 imports the version-stamped com_google_protobuf_4_32_0 package
directly, which breaks on protobuf bumps (now 4.35.0); main uses the stable
class. Test main until a release ships the fix (tracked in #2179).
Signed-off-by: Gregor Zeitlinger <gregor.zeitlinger@grafana.com>
The jmx-exporter and micrometer compat env files pin an LTS JDK that the
upstream release supports; a major bump to the primary JDK (e.g. 25) breaks
those builds, as in #2173.
Signed-off-by: Gregor Zeitlinger <gregor.zeitlinger@grafana.com>
@zeitlinger zeitlinger marked this pull request as ready for review June 2, 2026 17:38
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants